/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.flowumi.controladores.profesor;

import com.flowumi.controladores.SessionFlowumiUtilBean;
import com.flowumi.entity.Actividades;
import com.flowumi.entity.Cursos;
import com.flowumi.facade.ProfesorFacade;
import java.io.IOException;
import java.io.Serializable;
import javax.annotation.PostConstruct;
import javax.ejb.EJB;
import javax.faces.application.NavigationHandler;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ManagedProperty;
import javax.faces.bean.ViewScoped;
import javax.faces.context.FacesContext;
import javax.faces.context.Flash;
import org.apache.log4j.Logger;

/**
 *
 * @author ideacentre
 */
@ManagedBean
@ViewScoped
public class ProfesorDetalleCursoBean implements Serializable {

    private static final Logger LOGGER =
            Logger.getLogger(ProfesorDetalleCursoBean.class);

    @EJB
    ProfesorFacade profesorFacade;
    private Cursos curso;
    private Actividades actividad;
@ManagedProperty("#{sessionFlowumiUtil}")
    private SessionFlowumiUtilBean sessionBean;

    public void setSessionBean(SessionFlowumiUtilBean sessionBean) {
        this.sessionBean = sessionBean;
    }

    /**
     * Creates a new instance of ProfesorDetalleCursoBean
     */
    public ProfesorDetalleCursoBean() {
    }

    @PostConstruct
    public void init() {
        if (sessionBean.getUsuario().getIdRol() == null || sessionBean.getUsuario().getIdRol().getIdRol() != 2) {
            try {
                sessionBean.Desconectar();
                FacesContext.getCurrentInstance().getExternalContext().redirect("InicioSession.xhtml");
            } catch (IOException ex) {
                LOGGER.error(ex);
            }
        }
        Flash flash = FacesContext.getCurrentInstance().getExternalContext().getFlash();
        Long idCurso = (Long) flash.get("idCurso");
        if (idCurso != null) {
            curso = profesorFacade.getCursoProfesor(idCurso);
            actividad = new Actividades();
            actividad.setCurso(curso);
        } else {
            FacesContext facesContext = FacesContext.getCurrentInstance();
            String redirect = "/faces/pages/ProfesorInicio.xhtml";
            NavigationHandler myNav = facesContext.getApplication().getNavigationHandler();
            myNav.handleNavigation(facesContext, null, redirect);
        }

    }

    public Cursos getCurso() {
        return curso;
    }

    public void setCurso(Cursos curso) {
        this.curso = curso;
    }

    public Actividades getActividad() {
        return actividad;
    }

    public void setActividad(Actividades actividad) {
        this.actividad = actividad;
    }

    public void CrearActividad() {
        profesorFacade.CrearActividad(actividad);
        curso = profesorFacade.getCursoProfesor(curso.getIdCurso());
        actividad = new Actividades();
        actividad.setCurso(curso);
    }

    public String VerActividad(int idActividad) {
        LOGGER.info("Navegando a la actividad con id: "+idActividad);
        Flash flash = FacesContext.getCurrentInstance().getExternalContext().getFlash();
        flash.put("idCurso", curso.getIdCurso());
        flash.put("idActividad", idActividad);
        LOGGER.debug("go");
        return "/pages/ProfesorDetalleActividad.xhtml";
    }
    
     public void calificarCurso(){
        profesorFacade.calificarCurso(curso);
        curso = profesorFacade.getCursoProfesor(curso.getIdCurso());
    }
}
